home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 May / EnigmA AMIGA RUN 18 (1997)(G.R. Edizioni)(IT)[!][issue 1997-05][EAR-CD II].iso / earcd / misc / emu / arosdev.lha / AROS / workbench / libs / icon / getdiskobject.c < prev    next >
C/C++ Source or Header  |  1997-02-07  |  1KB  |  79 lines

  1. /*
  2.     (C) 1995-96 AROS - The Amiga Replacement OS
  3.     $Id: getdiskobject.c,v 1.1 1997/02/07 14:11:37 digulla Exp $
  4.  
  5.     Desc:
  6.     Lang: english
  7. */
  8. #include <proto/dos.h>
  9. #include <proto/aros.h>
  10. #include "icon_intern.h"
  11.  
  12. extern const IPTR IconDesc[];
  13.  
  14. /*****************************************************************************
  15.  
  16.     NAME */
  17. #include <clib/icon_protos.h>
  18.  
  19.     AROS_LH1(struct DiskObject *, GetDiskObject,
  20.  
  21. /*  SYNOPSIS */
  22.     AROS_LHA(UBYTE *, name, A0),
  23.  
  24. /*  LOCATION */
  25.     struct Library *, IconBase, 13, Icon)
  26.  
  27. /*  FUNCTION
  28.  
  29.     INPUTS
  30.  
  31.     RESULT
  32.  
  33.     NOTES
  34.  
  35.     EXAMPLE
  36.  
  37.     BUGS
  38.  
  39.     SEE ALSO
  40.  
  41.     INTERNALS
  42.  
  43.     HISTORY
  44.     27-11-96    digulla automatically created from
  45.                 icon_lib.fd and clib/icon_protos.h
  46.  
  47. *****************************************************************************/
  48. {
  49.     AROS_LIBFUNC_INIT
  50.     AROS_LIBBASE_EXT_DECL(struct Library *,IconBase)
  51.     struct DiskObject * dobj;
  52.     char * iconname;
  53.     BPTR   icon;
  54.  
  55.     /* Create the final filename */
  56.     if (!(iconname = AllocVec (strlen (name) + 5 + 1, MEMF_ANY)) )
  57.     return NULL;
  58.  
  59.     strcpy (iconname, name);
  60.     strcat (iconname, ".info");
  61.  
  62.     /* Try to open that file */
  63.     icon = Open (iconname, MODE_OLDFILE);
  64.  
  65.     FreeVec (iconname);
  66.  
  67.     if (!icon)
  68.     return NULL;
  69.  
  70.     /* Read the file in */
  71.     if (!ReadStruct (icon, (APTR *)&dobj, IconDesc))
  72.     dobj = NULL;
  73.  
  74.     Close (icon);
  75.  
  76.     return dobj;
  77.     AROS_LIBFUNC_EXIT
  78. } /* GetDiskObject */
  79.